package org.flashamaphone.voices
{
	import flash.utils.ByteArray;
	
	/** 
	 * voice interface
	 */
	public interface IVoice
	{
		/**
		 * get attack bytes
		 * 
		 * @param frequency
		 * @param duration (milliseconds)
		 * @return sound byteArray
		 */
		function attack(freq:Number, milliseconds:Number):ByteArray;
		
		/**
		 * get decay bytes
		 * 
		 * @param frequency
		 * @param duration (milliseconds)
		 * @return sound byteArray
		 */
		function decay(freq:Number, milliseconds:Number):ByteArray;
		
		/**
		 * get sustain bytes
		 * 
		 * @param frequency
		 * @param duration (milliseconds)
		 * @return sound byteArray
		 */
		function sustain(freq:Number, milliseconds:Number):ByteArray;
		
		/**
		 * get release bytes
		 * 
		 * @param frequency
		 * @param duration (milliseconds)
		 * @return sound byteArray
		 */
		function release(freq:Number, milliseconds:Number):ByteArray;
	}
}